/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.wicketstuff.ki.example;

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.PageParameters;
import org.apache.wicket.Page;
import org.apache.ki.SecurityUtils;

/**
 * An example of a Wicket SignOutPage using Ki's API.  Adapted from the 'SignOutPage' example in
 * Wicket in Action, Chapter 11 (Security your application), listing 11.5.
 * 
 * @author Les Hazlewood
 * @since 13 Oct 2008
 */
public class SignOutPage extends WebPage {

    public static final String REDIRECTPAGE_PARAM = "redirectpage";

    public SignOutPage( final PageParameters parameters ) {
        String page = parameters.getString(REDIRECTPAGE_PARAM);
        Class<? extends Page> pageClass;
        if ( page != null ) {
            try {
                pageClass = (Class<? extends Page>)Class.forName(page);
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        } else {
            pageClass = getApplication().getHomePage();
        }
        
        SecurityUtils.getSubject().logout();

        setResponsePage(pageClass);
    }

}
